﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BL;
using BE;
using System.Data;
namespace UI.Sistemas
{
    public partial class FrmHorarios : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                llenarComboSemestre();
                llenarComboCiclos();
                llenarComboEspecialidad();
            }
        }



        private void llenarComboSemestre()
        {
            labelErrorCp.Text = "";
            try
            {
                ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                List<Periodo> lista = rnc.ObtenerPeriodos();
                ComboSemestre.DataSource = lista;
                ComboSemestre.DataTextField = "Semestre";
                ComboSemestre.DataValueField = "Semestre";
                ComboSemestre.DataBind();
            }
            catch (Exception ex)
            {
                labelErrorCp.Text = ex.Message;
            }

        }

        private void llenarComboCiclos()
        {
            labelErrorCp.Text = "";
            try
            {
                ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                List<Ciclos> lista = rnc.ObtenerCiclos();
                ComboCiclo.DataSource = lista;
                ComboCiclo.DataTextField = "Descripcion2";
                ComboCiclo.DataValueField = "ID";
                ComboCiclo.DataBind();
                ComboCiclo.Items.Insert(0, "--Seleccione--");
            }
            catch (Exception ex)
            {
                labelErrorCp.Text = ex.Message;
            }

        }

        private void llenarComboEspecialidad()
        {
            labelErrorCp.Text = "";
            try
            {
                ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                List<Especialidad> lista = rnc.ObtenerEspecialidades();
                ComboEspecialidad.DataSource = lista;
                ComboEspecialidad.DataTextField = "DESCRIPCCION";
                ComboEspecialidad.DataValueField = "ID";
                ComboEspecialidad.DataBind();
                ComboEspecialidad.Items.Insert(0, "--Seleccione--");
            }
            catch (Exception ex)
            {
                labelErrorCp.Text = ex.Message;
            }

        }



        protected void onComboCursoSelected(object sender, EventArgs e)
        {
            labelErrorCp.Text = "";
            try
            {
                DropDownList combo = (DropDownList)sender;
                GridViewRow row = ((GridViewRow)((DataControlFieldCell)combo.Parent).Parent);
                var id = GridDetalle.DataKeys[row.RowIndex].Value.ToString();


                Horarios_BL hora = new Horarios_BL();
                hora.ActualizarCursoEnNota(id, combo.SelectedItem.Value);

            }
            catch (Exception ex)
            {
                labelErrorCp.Text = ex.Message.ToString();
            }
        }


        protected void chk_Onchecksubido(object sender, EventArgs e)
        {
            labelErrorCp.Text = "";
            try
            {
                CheckBox ckeck = (CheckBox)sender;
                GridViewRow row = ((GridViewRow)((DataControlFieldCell)ckeck.Parent).Parent);
                var id = GridDetalle.DataKeys[row.RowIndex].Value.ToString();

                if (ckeck.Checked)
                {
                }
                else
                {
                }

            }
            catch (Exception ex)
            {
                labelErrorCp.Text = ex.Message.ToString();
            }
        }



        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            labelErrorCp.Text = "";
            try
            {
                String semestre = ComboSemestre.SelectedItem.Value;
                String especialidad = ComboEspecialidad.SelectedItem.Value;
                String ciclo = ComboCiclo.SelectedItem.Value;
                Horarios_BL rnc = new Horarios_BL();
                rnc.GenerarAsistencias(semestre, especialidad, ciclo);
                llenarGrilla();
            }
            catch (Exception ex)
            {
                labelErrorCp.Text = ex.Message;
            }
        }



        private void CargarCursos()
        {
            Horarios_BL cpb = new Horarios_BL();

            String semestre = ComboSemestre.SelectedItem.Value;
            String especialidad = ComboEspecialidad.SelectedItem.Value;
            String ciclo = ComboCiclo.SelectedItem.Value;

            DataTable lista = cpb.ObtenerListaCursos(semestre, especialidad, ciclo);
            ViewState["CursosCiclo"] = lista;
        }



        protected void GridDetalle_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            TextBox texto = e.Row.FindControl("txtCurso") as TextBox;
            DropDownList drp = e.Row.FindControl("comboCurso") as DropDownList;

            String subido = e.Row.Cells[1].Text.ToString();


            if (drp != null)
            {
                ComprobanteVenta_BL cpb = new ComprobanteVenta_BL();
                drp.DataSource = (DataTable)ViewState["CursosCiclo"];
                drp.DataTextField = "Curso";
                drp.DataValueField = "IDCurso";
                drp.DataBind();
                drp.Items.Insert(0, "--Seleccionar Un Curso--");
                drp.SelectedIndex = drp.Items.IndexOf(drp.Items.FindByValue(texto.Text));
                if (subido.Equals("SI")) {
                    drp.Enabled = false;
                }

            }
        }

        protected void ComboCiclo_SelectedIndexChanged(object sender, EventArgs e)
        {
            labelErrorCp.Text = "";
            try
            {
                CargarCursos();
                llenarGrilla();
            }
            catch (Exception ex)
            {
                labelErrorCp.Text = ex.Message;
            }
        }

        private void llenarGrilla() {

            labelErrorCp.Text = "";
            try
            {
            

                String especialidad = ComboEspecialidad.SelectedItem.Value;
                String ciclo = ComboCiclo.SelectedItem.Value;
                Horarios_BL rnc = new Horarios_BL();
                GridDetalle.DataSource = rnc.ObtenerListaHorario(especialidad, ciclo);
                GridDetalle.DataBind();


            }
            catch (Exception ex)
            {
                labelErrorCp.Text = ex.Message;
            }
        }

        protected void ComboSemestre_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridDetalle.DataSource = null;
            GridDetalle.DataBind();
            ComboEspecialidad.SelectedIndex = 0;
            ComboCiclo.SelectedIndex = 0;
        }

        protected void ComboEspecialidad_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridDetalle.DataSource = null;
            GridDetalle.DataBind();
            ComboCiclo.SelectedIndex = 0;
        }


    }
}